import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:verse_systems/commom/global/global.dart';

class ImageUtils {
  static const List images = [
    "work_business",
    "work_chinese",
    "work_english",
    "work_major",
    "work_math",
    "work_network",
  ];

  static ImageProvider getAssetImage(String name,
      {ImageFormat format = ImageFormat.png}) {
    return AssetImage(getImgPath(name, format: format));
  }

  /*
   * @name 图片名称
   * @getFromAssetImage  根据屏幕比率获取2X和3X图片地址
   */
  static String getFromAssetImage(String name,
      {ImageFormat format = ImageFormat.png}) {
    final pixelRatio = (Global.pixelRatio == 3) ? Global.pixelRatio : 2.0;
    final String image =
        "assets/images/$pixelRatio${"x"}${"/"}$name.${format.value}";
    return image;
  }

  /*
   * @name 图片名称
   * @getImgPath  获取images文件下的图片地址
   */
  static String getImgPath(String name,
      {ImageFormat format = ImageFormat.png}) {
    return 'assets/images/$name.${format.value}';
  }

  /*
   * @name 图片名称
   * @getCourseImgPath  获取course课程文件下的图片地址
   */
  static String getCourseImgPath(String name,
      {ImageFormat format = ImageFormat.png}) {
    return 'assets/course/$name.${format.value}';
  }

  /*
   * @name 图片名称
   * @getWorksImgPath  获取作业文件下的图片地址
   */
  static String getWorksImgPath(String name,
      {ImageFormat format = ImageFormat.png}) {
    return 'assets/work/$name.${format.value}';
  }

  /*
   * @name 图片名称
   * @getModuleImgPat  获取module文件下的图片地址
   */
  static String getModuleImgPath(String name,
      {ImageFormat format = ImageFormat.png}) {
    return 'assets/module/$name.${format.value}';
  }

  /*
   * @name 图片名称
   * @getIconImgPath  获取Icon文件下的图片地址
   */
  static String getIconImgPath(String name,
      {ImageFormat format = ImageFormat.png}) {
    return 'assets/icon/$name.${format.value}';
  }


  static String getHtmlPath(String name, {String format = 'html'}) {
    return 'assets/html/$name.$format';
  }
}

enum ImageFormat { png, jpg, gif, webp }

extension ImageFormatExtension on ImageFormat {
  String get value => ['png', 'jpg', 'gif', 'webp'][index];
}
